home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib10.dsk / DUAL COL PRINTER FOR TOUGH.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  73 lines

  1. 1  REM  *****************************
  2. 2  REM  *   DUAL COLUMN PRINTER     *
  3. 3  REM  *    FOR T.O.U.G.H          *
  4. 4  REM  *     BY HAL CLARK          *
  5. 5  REM  *    COPYRIGHT (C) 1982     *
  6. 6  REM  *    BY MICRO-SPARC INC     *
  7. 7  REM  *    LINCOLN, MA. 01773     *
  8. 8  REM  *    ALL RIGHTS RESERVED    *
  9. 9  REM  *****************************
  10. 10  TEXT : HOME : CLEAR : VTAB 4
  11. 30  PRINT  TAB( 5);"DUAL COLUMN PRINTER"
  12. 40  PRINT  TAB( 5);"FOR THE T.O.U.G.H"
  13. 50  PRINT  TAB( 5);"TEXT EDITOR."
  14. 60  PRINT "COPYRIGHT (C) - 1982, MICRO-SPARC, INC."
  15. 70 CR$ =  CHR$(13): REM  CARRIAGE RETURN
  16. 80 D$ =  CHR$(4): REM  CTRL/D
  17. 90 SP$ = " ": REM  SPACE
  18. 100 I$ =  CHR$(9):U$ =  CHR$(27):CI$ =  CHR$(20):LF$ =  CHR$(10)
  19. 110  PRINT 
  20. 120  PRINT "ENTER NAME OF FILE TO PRINT": INPUT NM$
  21. 130  GOSUB 140: GOTO 210
  22. 140  PRINT D$;"OPEN TFILE-";NM$
  23. 150  PRINT D$;"READ TFILE-";NM$
  24. 160  INPUT NL: REM  NUMBER OF SAVED LINES
  25. 170  INPUT LL: REM  LINE LENGTH
  26. 180  INPUT TV: REM  TAB VALUE
  27. 190  PRINT D$
  28. 200  RETURN 
  29. 210  INPUT "PAGE WIDTH (CHARS)";PW
  30. 220 MG =  INT((PW -(LL *2))/3): REM MARGINS L,C,R
  31. 230  IF MG <0  THEN  PRINT "CAN'T FIT "2 *LL" CHARS ON A "PW" CHAR PAGE": GOTO 210
  32. 240  PRINT "MARGINE WILL BE ";MG;" CHARS."
  33. 250  INPUT "ENTER MAX PAGE LENGTH (LINES) ";PL
  34. 260  INPUT "TOP/BOTTOM MARGINS (LINES) ";TB
  35. 270  INPUT "CONTINUOUS OR SINGLE SHEET PAPER? (C/S)";PT$
  36. 280  DIM PG$(PL)
  37. 290  PRINT D$;"PR# 1": REM  TURN ON PRINTER
  38. 300  PRINT I$;"K": REM  TURN OFF AUTO LINE FEED
  39. 310  PRINT U$;CI$: REM  SELECT 16.7CPI
  40. 320  PRINT I$;PW;"N": REM  SET MAS COLUMNS
  41. 330  PRINT U$;LF$: REM  MAKE UP FOR THE FIRST LINE FEED
  42. 340  FOR I = 1 TO PL:PG$(I) = SP$ +CR$: NEXT I
  43. 350  FOR I1 = TB +1 TO PL -TB:PG$(I1) = ""
  44. 360  FOR I2 = 1 TO MG:PG$(I1) = PG$(I1) +SP$: NEXT I2
  45. 370  PRINT D$;"READ TFILE-";NM$
  46. 380  INPUT CL$: REM  CURRENT LINE
  47. 390 PG$(I1) = PG$(I1) +CL$
  48. 400 I = LL +MG - LEN(CL$)
  49. 410  IF I >0  THEN I = I -1:PG$(I1) = PG$(I1) +SP$: GOTO 410
  50. 420 NL = NL -1: IF NL = 0  THEN I1 = PL -TB
  51. 430  NEXT I1
  52. 440 I = TB
  53. 450  IF I >0  THEN I = I -1: PRINT SP$: GOTO 450
  54. 460  FOR I1 = TB +1 TO PL -TB
  55. 470 CL$ = "": IF NL = 0  THEN 510
  56. 480  PRINT D$;"READ TFILE-";NM$
  57. 490  INPUT CL$
  58. 500  PRINT D$
  59. 510  PRINT PG$(I1);CL$
  60. 520  IF NL >0  THEN NL = NL -1
  61. 530  NEXT I1
  62. 540 I = TB
  63. 550  IF I >0  THEN I = I -1: PRINT SP$: GOTO 550
  64. 560  IF NL >0  AND PT$ = "C"  THEN 340
  65. 570  IF NL >0  THEN  PRINT I$;"40N": PRINT D$;"PR#0": PRINT "PLACE NEW PAGE IN PRINTER": INPUT "PRESS 'RETURN' WHEN READY";A$: GOTO 290
  66. 580  PRINT D$;"CLOSE"
  67. 590  PRINT I$;"40N"
  68. 600  PRINT D$;"PR# 0": REM  TURN OFF PRINTER
  69. 610  PRINT "PRINT ANOTHER COPY?"
  70. 620  INPUT " (S-SAME, D-DIFFERENT, N-NONE)";A$
  71. 630  IF A$ = "S"  THEN  GOSUB 140: GOTO 290
  72. 640  IF A$ = "D"  THEN  GOTO 10
  73. 650  END